package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.common.core.domain.AjaxResult;
import com.project.domain.bo.MiddleCheckOrCompleteBo;
import com.project.domain.entity.BizProjectMiddleCheck;
import com.project.domain.vo.BizProjectMiddleCheckVo;
import com.project.domain.vo.NavigationForProVo;

import java.util.List;

public interface IBizProjectMiddleCheckService extends IService<BizProjectMiddleCheck> {

    /**
     * 左上角根据状态的数量统计
     * @param bizProjectMiddleCheck
     * @return
     */
    List<NavigationForProVo.NameAndCount> selectGroups(MiddleCheckOrCompleteBo bizProjectMiddleCheck);

    /**
     * 查询项目中检
     *
     * @param ID 项目中检主键
     * @return 项目中检
     */
    BizProjectMiddleCheck selectBizProjectMiddleCheckByID(String ID);

    /**
     * 查询项目中检列表
     *
     * @param bizProjectMiddleCheck 项目中检
     * @param type
     * @return 项目中检集合
     */
    IPage<BizProjectMiddleCheckVo> selectBizProjectMiddleCheckList(MiddleCheckOrCompleteBo bizProjectMiddleCheck, String type);

    /**
     * 保存项目中检信息
     *
     * @param bizProjectMiddleCheck 项目中检
     * @param operateType 操作类型
     * @return 结果
     */
    AjaxResult saveBizProjectMiddleCheck(BizProjectMiddleCheck bizProjectMiddleCheck, String operateType);

    /**
     * 批量删除项目中检
     *
     * @param IDs 需要删除的项目中检主键集合
     * @return 结果
     */
    int deleteBizProjectMiddleCheckByIDs(String[] IDs);

    /**
     * 删除项目中检信息
     *
     * @param ID 项目中检主键
     * @return 结果
     */
    int deleteBizProjectMiddleCheckByID(String ID);
}
